In 3D computer graphics, the image of an object is projected onto a projection plane and then recorded into a display memory so as to be able to show a 3D-graphics on a planar display. Please refer to FIG. 1A, in which a visible region 10 is defined in a view extending from an original 11 in a specified direction and confined within points 121, 122, 123, 124, 131, 132, 133 and 134. The objects in the visible region are to be projected onto a projection plane that is generally the near plane 101 confined within the points 121, 122, 123 and 124. At a time point, some of the objects are completely located inside the visible region 10, e.g. objects 141 and 142, some are completely located outside the visible region 10, e.g. object 143, and the others are located across the margin of the visible region 10, e.g. object 144. Conventionally, the object 144 intersecting with the visible region 10 is disregarded from the projecting operation just like the object 143 completely located outside the visible region 10. Such an algorithm is simple but adverse to smoothness of images. For example, during the period when the object 144 continuously intersects with the visible region 10, the object 144 has been keeping disregarded. Once the object 144 completely enters the visible region 10 at a certain time point, the object 144 will become visible and thus processed to be shown on the display. Under this circumstance, the object 144 seems to jump into the frame suddenly. On the other hand, for the object 141 or 142 that is shown in the display at a previous time point, it seems to disappear from the display suddenly once a little corner thereof moves out of the margin of the visible region 10. If there are a great number of objects simultaneously jumping in or jumping out of the display, the smoothness of images will be adversely affected.
For solving this problem, a 3D-graphics clipping process is developed. As is known to those skilled in the art, a 3D-graphics clipping process is generally a time-consuming task in the 3D image processing pipeline. There are six clipping planes based on to clip a polygon against the view volume. For each clipping plane, an intersection with the polygon is performed. For each intersection, new polygons must be determined based on the intersection points. Therefore, for an application involving hundreds of thousands of polygons, the clipping process will be one of the bottlenecks of the 3D image processing pipeline. Give the object 144 shown in FIG. 1A as an example and further refer to FIG. 1B. Being subjected to the clipping process, the object 144 is divided into two parts 144a and 144b by the plane 102 conforming to the plane defined with points 122, 123, 132 and 133. While the part 144a is located inside the visible region, the part 144b is located outside the visible region. One of the parts 144a and 144b can be considered as a new object. Since the two parts 144a and 144b are calculated separately and processed as different objects, the display of the part 144a will not be affected by the disappearance of the part 144b. Such a clipping process, although improving the smoothness of images, derives tremendous calculations. First of all, which objects need to be clipped has to be determined. Then, clipping planes cannot be realized until a series of calculations are performed for the object to be clipped. Afterwards, new operational points and associated lines and planes are generated after further calculations. Finally, all the calculated data have to be correlated to generate the new object 144a or 144b. In spite the new object 144a or 144b is smaller than the original object 144 in size, it does not mean the calculation associated with each divided part can be simplified compared to the whole object. For example, referring to FIG. 2A, a cubic object 20 is defined with 8 points (seven of them are visible and the other is hidden) and consisting of 12 triangles (six of them are visible and the others are hidden) as shown. Once one of the 8 corners is clipped, the divided object 21 would become defined with 10 points (nine of them are visible and the other is hidden) and consisting of 16 triangles (ten of them are visible and the others are hidden) as shown in FIG. 2B. The calculation associated with the divided object 21 thus becomes complicated compared to the original object 20. Complicated calculation consumes lots of the system resource. Moreover, the display of images may be lagged.
In order to enhance the processing efficiency and reducing cost, various techniques have been developed to deal with the clipping process. For example, a so-called “guardband clipping” process is widely adopted by defining a guardband range outside the clipping window. According to the guardband clipping process, the object that partially intersecting with the clipping window is processed with a fast pixel rasterization mechanism to remove the pixels outside the clipping window. Please refer to FIG. 3, in which a guardband applicable to four clipping planes 391, 392, 393 and 394 of a visible region is exemplified. The clipping planes 391, 392, 393 and 394, if referring to FIG. 1A, could be the plane defined with points 122, 132, 133 and 123, the plane defined with points 122, 121, 131 and 132, the plane defined with points 124, 121, 131 and 134, and the plane defined with points 123, 124, 134 and 133. In FIG. 3, the rectangular zone 30 represents the visible region, and the ring zone 31 surrounding the rectangular zone 30 represents the guardband. With the use of the guardband to perform the 3D-graphics clipping process, the object 33 completely located inside the visible region 30, of course, remains as a whole. The object 34 lying across the margin of the visible region 30 but not extending outside the guardband 31 is also kept unclipped and will be processed subsequently for rendering as a whole. For the objects 32, 35 and 36 completely located outside the visible region 30, they are discarded from processing. As for the object 37 extending over the visible region 30, guardband 31 and surrounding (outside the guardband), it will be subject to clipping. In this fashion, the count and frequency of clipping operations could be minimized.
However, as mentioned above, there are generally six clipping planes based on to clip a polygon against the view volume. In other words, in addition to the aforementioned four side clipping planes 391, 392, 393 and 394, the other two clipping planes, e.g. a near plane defined with points 121, 122, 123 and 124 and a far plane defined with points 131, 132, 133 and 134 as illustrated in FIG. 1A, have not been taken into considerations in the prior art. Thus, the balance between the smoothness of images and the reduction of clipping operations need be further sought.